Emmanuele Bassi [Fri, 12 Apr 2019 19:21:29 +0000 (20:21 +0100)]
ci: Update list of xfail tests
The label tests do not fail any more, because the CI image has Monospace
fonts; the textview-margins test started to fail on the CI image,
though.
Emmanuele Bassi [Fri, 12 Apr 2019 19:03:11 +0000 (20:03 +0100)]
ci: Install Monospace fonts
The reftests require them.
Matthias Clasen [Fri, 12 Apr 2019 19:07:01 +0000 (15:07 -0400)]
inspector: Show readonly property values
Matthias Clasen [Fri, 12 Apr 2019 18:56:23 +0000 (14:56 -0400)]
inspector: Cosmetics
Matthias Clasen [Fri, 12 Apr 2019 18:34:11 +0000 (14:34 -0400)]
inspector: Revamp attribute and action info
This also needs to be turned into single-line data.
Matthias Clasen [Fri, 12 Apr 2019 17:58:33 +0000 (13:58 -0400)]
Fix a crash
We had a signal handler with a wrong signature, causing
a crash when looking at the GtkSettings properties in
the inspector.
Emmanuele Bassi [Fri, 12 Apr 2019 17:59:04 +0000 (17:59 +0000)]
Merge branch 'default-request-mode' into 'master'
Add default GtkLayoutManagerClass.get_request_mode()
See merge request GNOME/gtk!738
Benjamin Otte [Fri, 12 Apr 2019 16:03:46 +0000 (18:03 +0200)]
CI: Turn on reftests
Benjamin Otte [Fri, 12 Apr 2019 16:01:45 +0000 (18:01 +0200)]
reftests: Mark the currently unfixed failures as XFAIL
They should be fixeed before 4.0 but the fixes are more involved. And we
want to start running the existing tests on CI, because they break
regularly and we want to catch that.
Benjamin Otte [Fri, 12 Apr 2019 04:48:28 +0000 (06:48 +0200)]
reftests: Fix GtkFixed layout properties
GtkFixed was still using "x" and "y", when it should have been using
"position".
Benjamin Otte [Fri, 12 Apr 2019 03:25:51 +0000 (05:25 +0200)]
reftests: Fix CSS for various tests
* :nth-child(first) => :first-child
* :nth-child(last) => :last-child
* Add semicolons at end of declarations
* Remove spaces between color functions (shade, alpha, ...) and args
Benjamin Otte [Fri, 12 Apr 2019 03:30:14 +0000 (05:30 +0200)]
tests: Remove testboxcss
That test was cool in 2011, but hasn't been updated or used since then
because its features are now part of widget-factory and the inspector.
So let's remove it.
Benjamin Otte [Fri, 12 Apr 2019 03:13:30 +0000 (05:13 +0200)]
builder: Parse GskTransform properties
In particular, this allows parsing the GtkFixed position properties.
Benjamin Otte [Thu, 21 Mar 2019 04:52:41 +0000 (05:52 +0100)]
transform: Add gsk_transform_parse()
It uses the new CSS parser.
Benjamin Otte [Thu, 11 Apr 2019 20:41:04 +0000 (22:41 +0200)]
testsuite: Fix stylecontext test
Update the test to the stricter interpretation of the CSS specification
and the removal of custom additions.
Benjamin Otte [Thu, 11 Apr 2019 19:11:39 +0000 (21:11 +0200)]
testsuite: Update references for style test
We have more accurate section printouts now and they are used here.
Benjamin Otte [Thu, 11 Apr 2019 02:33:08 +0000 (04:33 +0200)]
testsuite: Check errors not just for line, but for full range
Instead of just checking that the line of the error message is correct,
assert that start and end position are on the correct character offset.
Also fix all the tests to conform to this.
Benjamin Otte [Thu, 11 Apr 2019 18:45:17 +0000 (20:45 +0200)]
testsuite: Update integer test
Make the test use an actual integer property that accepts negative
numbers (opacity) instead of one that wants units (margin-top) or
can't deal with negative numbers (everything else).
Benjamin Otte [Thu, 11 Apr 2019 17:44:46 +0000 (19:44 +0200)]
selector: Inlcude : sign when reporting errors
Benjamin Otte [Thu, 11 Apr 2019 04:10:52 +0000 (06:10 +0200)]
cssprovider: Mark whole @import statement on import error
Benjamin Otte [Thu, 11 Apr 2019 02:31:36 +0000 (04:31 +0200)]
calc: Have better error location range
Benjamin Otte [Wed, 10 Apr 2019 19:10:03 +0000 (21:10 +0200)]
csspositionvalue: Redo the parser
The old one incorrectly rejected "center left" and "center right".
Benjamin Otte [Wed, 10 Apr 2019 17:42:09 +0000 (19:42 +0200)]
cssparser: Add error functions that take locations
... and use them to report better error locations for the warning when
blocks aren't terminated properly.
Benjamin Otte [Wed, 10 Apr 2019 16:40:50 +0000 (18:40 +0200)]
css: Move gtkcsssection.[ch] into gtk/css
Benjamin Otte [Wed, 10 Apr 2019 16:16:10 +0000 (18:16 +0200)]
cssparser: Pass in error locations explicitly
And for the quick function, use the start/end location of the current
token.
Benjamin Otte [Wed, 10 Apr 2019 16:01:56 +0000 (18:01 +0200)]
cssprovider: Redo error emission
Emit all errors via the parser, don't try to have a custom error
handling machinery.
The only exception is the initial file load error - we need to do that
one directly, because there is no parser.
Benjamin Otte [Wed, 10 Apr 2019 15:23:14 +0000 (17:23 +0200)]
csssection: Make printing functions public
Benjamin Otte [Wed, 10 Apr 2019 15:07:06 +0000 (17:07 +0200)]
cssprovider: Advance parser to start of declaration
This way, the block will reference the right location.
Benjamin Otte [Wed, 10 Apr 2019 14:37:52 +0000 (16:37 +0200)]
cssprovider: Change section handling
Instead of building a full tree of sections that then nobody cares
about, just create sections as necessary for when we use it in the
inspector.
Benjamin Otte [Wed, 10 Apr 2019 14:02:07 +0000 (16:02 +0200)]
cssparser: Improve location APIs
1. Export multiple locations
2. Return the location instead of passing one in
Benjamin Otte [Wed, 10 Apr 2019 03:18:14 +0000 (05:18 +0200)]
cssection: Return locations, not numbers
Now that we have GtkCssLocation, actually use it.
Benjamin Otte [Wed, 10 Apr 2019 02:55:37 +0000 (04:55 +0200)]
css: Remove GtkCssSectionType
It's unused.
Benjamin Otte [Wed, 10 Apr 2019 01:51:40 +0000 (03:51 +0200)]
csssection: Redo constructors
Remove the unused one and rename the old one to new_from_parser().
Benjamin Otte [Wed, 10 Apr 2019 00:59:15 +0000 (02:59 +0200)]
csssection: Store a GtkCssLocation
Benjamin Otte [Tue, 9 Apr 2019 03:40:50 +0000 (05:40 +0200)]
css: Review error messages
... and move them from _gtk_css_parser_error() to the proper new error
message.
Benjamin Otte [Tue, 9 Apr 2019 22:08:57 +0000 (00:08 +0200)]
css: Use gtk_css_parser_consume_any() for transition shorthand
Benjamin Otte [Tue, 9 Apr 2019 04:54:10 +0000 (06:54 +0200)]
testsuite: Update parser tests to new errors
Some errors are now properly detected as unknown values when previously
they were just treated as syntax errors.
Benjamin Otte [Tue, 9 Apr 2019 04:37:32 +0000 (06:37 +0200)]
testsuite: Handle warnings in CSS tests
Benjamin Otte [Tue, 9 Apr 2019 03:15:45 +0000 (05:15 +0200)]
cssshadow: Use gtk_css_parser_consume_any()
This way, the arguments can now really be speicified in any order.
A new testcase testing all the ordering possibilities has been added.
Benjamin Otte [Tue, 9 Apr 2019 02:47:00 +0000 (04:47 +0200)]
css: Redo for new parser
This commit is still way too big, but I couldn't make it smaller.
It transitions the old CSS parser to the new parser. CSS parsing is now
tokenized, everything else is probably still buggy.
Benjamin Otte [Sat, 6 Apr 2019 00:40:29 +0000 (02:40 +0200)]
rgba: Add gdk_rgba_parser_parse()
This function is a (private) function to parse a GdkRGBA accoridng to
the CSS specs. We should probably use it for gdk_rgba_parse(), but that
would change the syntax we accept there...
This also introduces a dependency of libgdk on libgtkcss.
So far, no users for this function exist.
Benjamin Otte [Tue, 19 Mar 2019 04:46:59 +0000 (05:46 +0100)]
Resurrect the CSS parser from the tokenizer branch
So far that parser is unused.
Benjamin Otte [Tue, 9 Apr 2019 00:29:27 +0000 (02:29 +0200)]
cssparser: Add gtk_css_parser_consume_url()
Another slight renaming and semantics change.
Benjamin Otte [Tue, 9 Apr 2019 00:15:12 +0000 (02:15 +0200)]
cssparser: Add gtk_css_parser_resolve_url()
Another slight change of semantics and naming for the new parser.
Benjamin Otte [Fri, 5 Apr 2019 11:41:08 +0000 (13:41 +0200)]
cssparser: Split integer gettig into has/consume functions
We can't try to get an integer because ultimately integer getters
support the same shenanigans that numbers and percentages do with calc()
and whatnot.
Benjamin Otte [Fri, 5 Apr 2019 00:57:14 +0000 (02:57 +0200)]
cssparser: Add gtk_css_parser_try_delim()
For parsing single code point delimiters. Also port calc() to use this.
Benjamin Otte [Fri, 5 Apr 2019 00:16:00 +0000 (02:16 +0200)]
cssparser: Get rid of _gtk_css_parser_try_double()
Use gtk_css_parser_consume_number() everywhere instead.
Benjamin Otte [Thu, 4 Apr 2019 21:37:38 +0000 (23:37 +0200)]
cssparser: Add gtk_css_parser_consume_string()
Well, just rename _gtk_css_parser_read_string() for the new semantics,
but this sounds cooler.
Benjamin Otte [Mon, 1 Apr 2019 22:21:02 +0000 (00:21 +0200)]
cssparser: Add gtk_css_parser_try_at_keyword()
Benjamin Otte [Mon, 1 Apr 2019 09:47:53 +0000 (11:47 +0200)]
cssparser: Drop _gtk_css_parser_has_prefix()
Replace it with has_ident/has_function. The old function is a typical
string matching API, not a tokenizing one.
Benjamin Otte [Sun, 31 Mar 2019 21:22:18 +0000 (23:22 +0200)]
parser: Get rid of _gtk_css_parser_is_eof()
Use gtk_css_parser_has_token() instead.
Benjamin Otte [Sun, 31 Mar 2019 18:05:12 +0000 (20:05 +0200)]
css: Make font-weight an integer
This conforms to what Pango does and to the CSS4 spec. And it makes the
parsing code easier. So let's go for it.
Benjamin Otte [Sun, 31 Mar 2019 17:24:53 +0000 (19:24 +0200)]
cssimagescaled: Use gtk_css_parser_consume_function()
As part of that, adapt the syntax from
-gtk-scaled( [<image>, <int>?]# )
to
-gtk-scaled( [<image> <int>?]# )
because the commas should be used to separate distinct elements.
Note that almost nobody specifies the scale anyway.
Benjamin Otte [Sun, 31 Mar 2019 12:41:45 +0000 (14:41 +0200)]
easevalue: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 31 Mar 2019 11:39:58 +0000 (13:39 +0200)]
cssimagelinear: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 31 Mar 2019 10:40:53 +0000 (12:40 +0200)]
cssparser: Add gtk_css_parser_consume_ident()
And use it to fix the palette parser.
Benjamin Otte [Sun, 31 Mar 2019 09:39:24 +0000 (11:39 +0200)]
shorthand: Use gtk_css_parser_try_ident()
Benjamin Otte [Sun, 31 Mar 2019 00:17:44 +0000 (01:17 +0100)]
cssimageradial: Use gtk_css_parser_consume_function()
Benjamin Otte [Sat, 30 Mar 2019 23:52:22 +0000 (00:52 +0100)]
cssimagefallback: Use gtk_css_parser_consume_function()
Benjamin Otte [Sat, 30 Mar 2019 19:20:11 +0000 (20:20 +0100)]
cssimagerecolor: Use gtk_css_parser_consume_function()
Benjamin Otte [Sat, 30 Mar 2019 19:13:11 +0000 (20:13 +0100)]
reftests: Add a cross-fade syntax-checking reftest
Making sure all this newfangled code does what it says.
Benjamin Otte [Sat, 30 Mar 2019 15:02:58 +0000 (16:02 +0100)]
cross-fade: Make progress optional
Now we accept progress being unset and then dynamically compute it
on-demand.
Benjamin Otte [Sat, 30 Mar 2019 11:04:51 +0000 (12:04 +0100)]
cross-fade: Use gtk_css_parser_consume_any()
.. and gtk_css_parser_consume_function().
gtk_css_parser_consume_any() is a new function that implements the CSS
spec's any combinator ||.
Benjamin Otte [Tue, 26 Mar 2019 16:39:07 +0000 (17:39 +0100)]
cssimage: Make cross-fade() an array
The new spec at https://drafts.csswg.org/css-images-4/#cross-fade-function
allows infinite images to cross-fade and we want to, too.
Benjamin Otte [Mon, 25 Mar 2019 03:11:08 +0000 (04:11 +0100)]
cssimageicontheme: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 24 Mar 2019 23:40:59 +0000 (00:40 +0100)]
cssfiltervalue: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 24 Mar 2019 21:59:10 +0000 (22:59 +0100)]
csstransformvalue: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 24 Mar 2019 20:11:53 +0000 (21:11 +0100)]
cssparser: Introduce gtk_css_parser_consume_function()
This is a vfunc-based function parser.
Benjamin Otte [Sun, 24 Mar 2019 13:36:55 +0000 (14:36 +0100)]
cssparser: Add gtk_css_parser_try_token()
Benjamin Otte [Sun, 24 Mar 2019 13:03:52 +0000 (14:03 +0100)]
cssparser: Introduce gtk_css_parser_try_ident()
... and gtk_css_parser_has_function().
Benjamin Otte [Sun, 24 Mar 2019 02:56:31 +0000 (03:56 +0100)]
cssparser: Get rid of _gtk_css_parser_begins_with()
Replace it with calls to gtk_css_parser_has_token().
Benjamin Otte [Sat, 23 Mar 2019 17:21:59 +0000 (18:21 +0100)]
parser: Add gtk_css_parser_has_token()
This is ithe first step towards converting the parsing code to use
tokens. For now, the topken type is just a magic enum value that only
works as-needed.
Benjamin Otte [Sat, 23 Mar 2019 02:27:56 +0000 (03:27 +0100)]
css: Split GtkCssLocation into its own file
And make the struct public, so we can use it in signal handlers.
Benjamin Otte [Mon, 18 Mar 2019 04:32:05 +0000 (05:32 +0100)]
csstokenizer: Add gtk_css_token_is_preserved()
Benjamin Otte [Fri, 15 Mar 2019 03:00:21 +0000 (04:00 +0100)]
tokenizer: Pass error arg to read_token()
Instead of an error vfunc, have the tokenizer vfunc take a GError
argument. Note that even when an error is returned, there is still a
token to be read.
Benjamin Otte [Fri, 4 Mar 2016 17:40:11 +0000 (18:40 +0100)]
css: Add GtkCssTokenizer
This is copied from an old branch of mine.
Benjamin Otte [Fri, 22 Mar 2019 03:20:17 +0000 (04:20 +0100)]
build: Add gtk-css static library
This library is meant to be the new CSS library that gets used from GDK,
GSK and GTK for string printing and parsing.
As a first step, move GtkCssProviderError into it.
While doing so, split it into GtkCssParserError (for critical problems)
and GtkCssParserWarning (for non-critical problems).
Emmanuele Bassi [Fri, 12 Apr 2019 17:26:52 +0000 (17:26 +0000)]
Merge branch 'vulkan-warning' into 'master'
vulkan: Add missing enumeration value
See merge request GNOME/gtk!740
Emmanuele Bassi [Fri, 12 Apr 2019 17:03:22 +0000 (18:03 +0100)]
vulkan: Add missing enumeration value
Vulkan 1.1.97 added VK_ERROR_INVALID_DEVICE_ADDRESS_EXT, and we now must
handle it.
Matthias Clasen [Fri, 12 Apr 2019 17:01:19 +0000 (13:01 -0400)]
inspector: Modernize action references
Now that we do inline editing, we need to
show this in a single line.
Matthias Clasen [Fri, 12 Apr 2019 16:35:06 +0000 (12:35 -0400)]
inspector: Drop binding info
Thia was relying on non-public implementation details
and was broken since 2015.
Emmanuele Bassi [Fri, 12 Apr 2019 16:08:21 +0000 (17:08 +0100)]
Add default GtkLayoutManagerClass.get_request_mode()
Just like GtkContainer provides a default implementation of
GtkWidgetClass.get_request_mode(), we can do the same inside
GtkLayoutManager.
A default implementation preserves the behavior of existing widgets that
moved, or will move, to a GtkLayoutManager.
Matthias Clasen [Fri, 12 Apr 2019 15:20:26 +0000 (15:20 +0000)]
Merge branch 'inspector-props' into 'master'
inspector: Improve property list editing
See merge request GNOME/gtk!736
Matthias Clasen [Fri, 12 Apr 2019 03:42:31 +0000 (23:42 -0400)]
inspector: Improve property list editing
Replace the treeview with popups on the property
page with a listbox with inline editing.
Benjamin Otte [Fri, 12 Apr 2019 14:31:39 +0000 (16:31 +0200)]
boxlayout: Remove unused variable
Emmanuele Bassi [Sat, 6 Apr 2019 13:20:02 +0000 (14:20 +0100)]
ci: Use UTF-8 encoding for the test cover report
Since we're embedding text coming from the tests into the report, we
should specify an encoding for both the source JSON file and the target
XML file when opening them.
Emmanuele Bassi [Fri, 12 Apr 2019 12:54:08 +0000 (12:54 +0000)]
Merge branch 'issue-1821' into 'master'
Fix get_request_mode for GtkBoxLayout
Closes #1821
See merge request GNOME/gtk!737
Emmanuele Bassi [Fri, 12 Apr 2019 12:11:28 +0000 (13:11 +0100)]
Fix get_request_mode for GtkBoxLayout
The default GtkWidgetClass.get_request_mode() is implemented by
GtkContainer; now that GtkBox uses a GtkBoxLayout, we need to implement
it inside the layout manager to preserve the same behavior as the old
GtkBox.
Fixes #1821
Chun-wei Fan [Fri, 12 Apr 2019 10:08:36 +0000 (18:08 +0800)]
meson: Only use HarfBuzz fallback when needed
The current Meson releases have broken CMake support, meaning that it is
likely that HarfBuzz could not be located for Visual Studio builds
unless one handcrafts pkg-config files for it, which is both tedious and
error-prone.
Instead, use the existing mechanism for looking for the HarfBuzz headers
and libraries on Visual Studio first when it could not be found via
dependency(), and then use the fallback if it still could not be found.
Matthias Clasen [Fri, 12 Apr 2019 02:28:15 +0000 (22:28 -0400)]
inspector: Cometic fixes for controllers
Add a frame, and make the rows not activatable.
Matthias Clasen [Fri, 12 Apr 2019 02:06:16 +0000 (22:06 -0400)]
inspector: Make rows activatable
Rows containing just a switch should be activatable,
and toggle the switch.
Matthias Clasen [Thu, 11 Apr 2019 23:16:07 +0000 (19:16 -0400)]
inspector: Fix css autosave
We were creating the directory with improper permissions.
Matthias Clasen [Thu, 11 Apr 2019 22:58:40 +0000 (18:58 -0400)]
Adwaita: Add spacing to message dialogs
The text was running into the action area.
Benjamin Otte [Thu, 11 Apr 2019 21:36:28 +0000 (23:36 +0200)]
inspector: Enable by default
We don't want to stop people from being able to debug GTK applications
by default.
The keybinding also runs last in event delivery, so it doesn't override
existing keybindings anywhere and is therefor safe to enable.
The setting of course should remain, so people who want to lock down
installations, like for kiosks, can turn this off.
Aurimas Černius [Thu, 11 Apr 2019 19:50:00 +0000 (22:50 +0300)]
Updated Lithuanian translation
Matthias Clasen [Thu, 11 Apr 2019 17:23:03 +0000 (17:23 +0000)]
Merge branch 'frame-clock' into 'master'
gdkframeclockidle: Don't permanently skew frame time
Closes #1612
See merge request GNOME/gtk!731
Jakub Steiner [Thu, 11 Apr 2019 13:35:24 +0000 (15:35 +0200)]
Adwaita: OSD set semi-opaque again
- forgot the bling bling
Jakub Steiner [Thu, 11 Apr 2019 13:26:55 +0000 (15:26 +0200)]
Adwaita: less purple OSD style
- one of the bits that escaped the purple cast is the osd background color
Chris Williams [Tue, 9 Apr 2019 20:26:25 +0000 (16:26 -0400)]
gdkframeclockidle: Don't permanently skew frame time
Since commit
3b2f9395, the frame time may be set into the future, so
only ensure monotonicity, and don't store the offset. This prevents the
frame time from becoming out of sync with g_get_monotonic_time().
Fixes #1612
Daniel Mustieles [Tue, 9 Apr 2019 08:11:59 +0000 (08:11 +0000)]
Update Spanish translation